home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Development Platforms / Apple II / Essentials / MPW IIGS Interfaces / PIIGSIncludes / Resources.p < prev    next >
Encoding:
Text File  |  1990-04-03  |  7.2 KB  |  188 lines  |  [TEXT/MPS ]

  1. {********************************************
  2. ; File: Resources.p
  3. ;
  4. ;
  5. ; Copyright Apple Computer, Inc. 1986-90
  6. ; All Rights Reserved
  7. ;
  8. ********************************************}
  9.  
  10. UNIT RESOURCES;
  11. INTERFACE
  12. USES TYPES,MEMORY,GSOS;
  13. CONST
  14.  
  15.  
  16. { ResourceConverter Codes }
  17. resLogOut = $0;
  18. resLogIn = $1;
  19. resLogApp = $0;
  20. resLogSys = $2;
  21.  
  22. { Error Codes }
  23. resForkUsed = $1E01;  { Resource fork not empty }
  24. resBadFormat = $1E02;  { Format of resource fork is unknown }
  25. resNoConverter = $1E03;  { No converter routine available for resource type }
  26. resNoCurFile = $1E04;  { there are no current open resource files }
  27. resDupID = $1E05;  { ID is already used }
  28. resNotFound = $1E06;  { resource was not found }
  29. resFileNotFound = $1E07;  { resource file not found }
  30. resBadAppID = $1E08;  { User ID not found, please call ResourceStartup }
  31. resNoUniqueID = $1E09;  { a unique ID was not found }
  32. {$IFC UNDEFINED resIndexRange }  { Index is out of range }
  33. resIndexRange = $1E0A;
  34. {$SETC resIndexRange := 0}
  35. {$ENDC}
  36. resSysIsOpen = $1E0B;  { System file is already open }
  37. resHasChanged = $1E0C;  { Resource marked changed; specified operation not allowed }
  38. resDiffConverter = $1E0D;  { Different converter already logged in for this resource type }
  39. resDiskFull = $1E0E;  { Volume is full }
  40.  
  41. { Other Constants }
  42. resChanged = $0020;
  43. resPreLoad = $0040;
  44. resProtected = $0080;
  45. resAbsLoad = $0400;
  46. resConverter = $0800;
  47. resMemAttr = $C31C;  { Flags passed to the NewHandle Memory Manager call }
  48. systemMap = $0001;
  49. mapChanged = $0002;
  50. romMap = $0004;
  51. resNameOffset = $10000;  { type holding names }
  52. resNameVersion = $0001;
  53.  
  54. { Resource Type Numbers }
  55. rIcon = $8001;  { Icon type }
  56. rPicture = $8002;  { Picture type }
  57. rControlList = $8003;  { Control list type }
  58. rControlTemplate = $8004;  { Control template type }
  59. rC1InputString = $8005;  { GS/OS class 1 input string }
  60. rPString = $8006;  { Pascal string type }
  61. rStringList = $8007;  { String list type }
  62. rMenuBar = $8008;  { MenuBar type }
  63. rMenu = $8009;  { Menu template }
  64. rMenuItem = $800A;  { Menu item definition }
  65. rTextForLETextBox2 = $800B;  { Data for LineEdit LETextBox2 call }
  66. rCtlDefProc = $800C;  { Control definition procedure type }
  67. rCtlColorTbl = $800D;  { Color table for control }
  68. rWindParam1 = $800E;  { Parameters for NewWindow2 call }
  69. rWindParam2 = $800F;  { Parameters for NewWindow2 call }
  70. rWindColor = $8010;  { Window Manager color table }
  71. rTextBlock = $8011;  { Text block }
  72. rStyleBlock = $8012;  { TextEdit style information }
  73. rToolStartup = $8013;  { Tool set startup record }
  74. rResName = $8014;  { Resource name }
  75. rAlertString = $8015;  { AlertWindow input data }
  76. rText = $8016;  { Unformatted text }
  77. rCodeResource = $8017;
  78. rCDEVCode = $8018;
  79. rCDEVFlags = $8019;
  80. rTwoRects = $801A;  { Two rectangles }
  81. rListRef = $801C;  { List member }
  82. rCString = $801D;  { C string }
  83. rErrorString = $8020;  { ErrorWindow input data }
  84. rKTransTable = $8021;  { Keystroke translation table }
  85. rWString = $8022;
  86. rC1OutputString = $8023;  { GS/OS class 1 output string }
  87. rSoundSample = $8024;
  88. rTERuler = $8025;  { TextEdit ruler information }
  89. rFSequence = $8026;
  90. rCursor = $8027;  { Cursor resource type }
  91.  
  92. TYPE
  93. ResID = Longint ;
  94. ResType = Integer ;
  95. ResAttr = Integer ;
  96. ResHeaderRec = RECORD
  97.     rFileVersion : Longint; { Format version of resource fork }
  98.     rFileToMap : Longint; { Offset from start to resource map record }
  99.     rFileMapSize : Longint; { Number of bytes map occupies in file }
  100.     rFileMemo : PACKED ARRAY[1..128] OF Byte; { Reserved space for application }
  101.     rFileRecSize : Longint; { Size of ResHeaderRec Record }
  102. END;
  103. FreeBlockRec = RECORD
  104.     blkOffset : Longint;
  105.     blkSize : Longint;
  106. END;
  107. ResMapHndl = ^ResMapPtr;
  108. ResMapPtr = ^ResMap;
  109. ResMap = RECORD
  110.     mapNext : ResMapHndl; { Handle to next resource map }
  111.     mapFlag : Integer; { Bit Flags }
  112.     mapOffset : Longint; { Map's file position }
  113.     mapSize : Longint; { Number of bytes map occupies in file }
  114.     mapToIndex : Integer;
  115.     mapFileNum : Integer;
  116.     mapID : Integer;
  117.     mapIndexSize : Longint;
  118.     mapIndexUsed : Longint;
  119.     mapFreeListSize : Integer;
  120.     mapFreeListUsed : Integer;
  121.     mapFreeList : ARRAY[1..1] OF FreeBlockRec; { n bytes (array of free block records) }
  122. END;
  123. ResRefRecPtr = ^ResRefRec;
  124. ResRefRec = RECORD
  125.     resType : ResType;
  126.     resID : ResID;
  127.     resOffset : Longint;
  128.     resAttr : ResAttr;
  129.     resSize : Longint;
  130.     resHandle : Handle;
  131. END;
  132. ResourceSpec = RECORD
  133.     resourceType : ResType;
  134.     resourceID : ResID;
  135. END;
  136. ResNameEntryPtr = ^ResNameEntry;
  137. ResNameEntry = RECORD
  138.     namedResID : ResID;
  139.     resName : Str255;
  140. END;
  141. ResNameRecHndl = ^ResNameRecPtr;
  142. ResNameRecPtr = ^ResNameRec;
  143. ResNameRec = RECORD
  144.     version : Integer;
  145.     nameCount : Longint;
  146.     resNameEntries : ARRAY[1..1] OF ResNameEntry;
  147. END;
  148. PROCEDURE AddResource ( resourceHandle:Handle; resourceAttr:ResAttr; resourceType:ResType; resourceID:ResID)  ;
  149. PROCEDURE CloseResourceFile ( fileID:Integer)  ;
  150. FUNCTION CountResources ( resourceType:ResType) : Longint ;
  151. FUNCTION CountTypes  : Integer ;
  152. PROCEDURE CreateResourceFile ( auxType:Longint; fileType:Integer; fileAccess:Integer; fileName:GSString255Ptr)  ;
  153. PROCEDURE DetachResource ( resourceType:ResType; resourceID:ResID)  ;
  154. FUNCTION GetCurResourceApp  : Integer ;
  155. FUNCTION GetCurResourceFile  : Integer ;
  156. FUNCTION GetIndResource ( resourceType:ResType; resourceIndex:Longint) : ResID ;
  157. FUNCTION GetIndType ( typeIndex:Integer) : ResType ;
  158. FUNCTION  GetMapHandle ( fileID:Integer) : ResMapHndl ;
  159. FUNCTION GetOpenFileRefNum ( fileID:Integer) : Integer ;
  160. FUNCTION GetResourceAttr ( resourceType:ResType; resourceID:ResID) : ResAttr ;
  161. FUNCTION GetResourceSize ( resourceType:ResType; currentID:ResID) : Longint ;
  162. FUNCTION HomeResourceFile ( resourceType:ResType; resourceID:ResID) : Integer ;
  163. FUNCTION  LoadAbsResource ( loadAddress:Longint; maxSize:Longint; resourceType:ResType; resourceID:ResID) : Longint ;
  164. FUNCTION LoadResource ( resourceType:ResType; resourceID:ResID) : Handle ;
  165. PROCEDURE MarkResourceChange ( changedFlag:Boolean; resourceType:ResType; resourceID:ResID)  ;
  166. PROCEDURE MatchResourceHandle (VAR resourceInfo:ResourceSpec; resourceHandle:Handle)  ;
  167. FUNCTION OpenResourceFile ( openAccess:Integer; resourceMapPtr:ResMapPtr; fileName:GSString255Ptr) : Integer ;
  168. PROCEDURE ReleaseResource ( purgeLevel:Integer; resourceType:ResType; resourceID:ResID)  ;
  169. PROCEDURE RemoveResource ( resourceType:ResType; resourceID:ResID)  ;
  170. PROCEDURE ResourceBootInit   ;
  171. PROCEDURE ResourceConverter ( converterProc:ProcPtr; resourceType:ResType; logFlags:Integer)  ;
  172. PROCEDURE ResourceReset   ;
  173. PROCEDURE ResourceShutDown   ;
  174. PROCEDURE ResourceStartUp ( userID:Integer)  ;
  175. FUNCTION ResourceStatus  : Boolean ;
  176. FUNCTION ResourceVersion  : Integer ;
  177. PROCEDURE SetCurResourceApp ( userID:Integer)  ;
  178. PROCEDURE SetCurResourceFile ( fileID:Integer)  ;
  179. PROCEDURE SetResourceAttr ( resourceAttr:ResAttr; resourceType:ResType; currentID:ResID)  ;
  180. FUNCTION SetResourceFileDepth ( searchDepth:Integer) : Integer ;
  181. PROCEDURE SetResourceID ( newID:ResID; resourceType:ResType; currentID:ResID)  ;
  182. FUNCTION SetResourceLoad ( readFlag:Integer) : Integer ;
  183. FUNCTION UniqueResourceID ( IDrange:Integer; resourceType:ResType) : ResID ;
  184. PROCEDURE UpdateResourceFile ( fileID:Integer)  ;
  185. PROCEDURE WriteResource ( resourceType:ResType; resourceID:ResID)  ;
  186. IMPLEMENTATION
  187. END.
  188.